<?xml version="1.0" encoding="utf-8"?>
<Content xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:blueonionsoftware-com:bloget:runtime:data">
  <text>PINVOKE.NET attempts to address the difficulty of calling Win32 or other unmanaged APIs in managed code (languages such as C# and VB .NET). Manually defining and using PInvoke signatures (also known as Declare statements in VB) is an error-prone process that can introduce extremely subtle bugs. The rules are complex, and if you make a mistake, youâ€™ll probably corrupt memory.

Therefore, this site is a repository where you can find, edit, and add PInvoke signatures, user-defined types, and any other information that helps us leverage each other's efforts. Think of this as the 21st century version of VB6's "API Text Viewer," a standalone application which used static files such as WIN32API.TXT as input. Did you spend hours figuring out how to successfully define &amp; call a given unmanaged API in managed code? Share (and get credit for) your discovery here! Is there an error on this site? Go ahead and fix it!

It's time to stop writing PInvoke signatures from scratch! Instead, copy and paste your way to productivity!

And this site has more than just signatures &amp; type definitions. For example:

&lt;ul&gt;
&lt;li&gt;Folks like you are sharing gotchas, tips, and samples specific to managed code. For example, check out why you shouldn't call CoInitializeSecurity from managed code.&lt;/li&gt;

&lt;li&gt;Alternative managed APIs are suggested as a replacement for using PInvoke in the first place.&lt;/li&gt;

&lt;li&gt;This site contains miscellaneous community resources that are helpful for being successful at unmanaged code interoperability. Feel free to add to these pages, too!&lt;/li&gt;
&lt;/ul&gt;


PINVOKE.NET is a Wiki (created with FlexWiki), enabling users like you (yes, you) to freely and easily contribute to the repository. New to Wikis? Try the Playground to experiment with the editing process. Enjoy!

-- Adam Nathan
&lt;a href="http://pinvoke.net/"&gt;http://pinvoke.net/&lt;/a&gt;</text>
  <last_update>2007-10-04T00:52:19.0140806Z</last_update>
  <source_title />
  <source_link />
  <comments />
  <references />
  <attachments />
</Content>